/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.jaywalkable.vkeyboard;

/**
 * Used to encode <code>String</code> or <code>Character</code>s of <code>
 * VKeyboard</code> to original keyboard input.
 * 
 * @author Rubel Ahammad
 */
public interface VKeyboardEncoder {

    /**
     * Encodes a given <code>String</code> of text.
     *
     * @param str the <code>String</code> to be encoded.
     * @return String returns the encoded <code>String</code>.
     */
    String encode(String str);

    /**
     * Encodes <code>Character</code> array of a particular alphabet to original
     * keyboard's key.  Returns null if no match is found associated with the
     * parameter.
     * @param chars the <code>Character</code> array to be encoded.
     * @return Character the <code>Character</code> associated with <code>
     * VKeyboard</code> implementation.
     */
    Character encode(Character[] chars);
}
